﻿<?xml version="1.0" encoding="utf-8"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:maml="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:doc="http://ddue.schemas.microsoft.com/authoring/internal" targetNamespace="http://ddue.schemas.microsoft.com/authoring/2003/5" blockDefault="#all" elementFormDefault="qualified" attributeFormDefault="unqualified" xml:lang="en">

  <!-- Schema documentation -->
  <annotation>
    <documentation>
      This schema describes MAML, the Microsoft Assistance Markup Language.
      MAML is intended for software documentation. In particular, it is 
      intended to accomodate the needs of Microsoft documentation.
    </documentation>
    <documentation>
      The schema is broken into three main areas: end user, developer and
      IT Pro. These areas adequaltely categorize Microsoft
      documentation.
    </documentation>
    <documentation>
      The namespace uri for this version of Maml is: http://ddue.schemas.microsoft.com/authoring/2003/5.
      Each backwards-incompatible revision to Maml will require that the date fields be appropriately
      incremented in uri of the updated version of the Maml schema.
    </documentation>
  </annotation>

  <annotation>
    <documentation>
      This portion of the schema was created by alexstoc in April 2003.
    </documentation>
  </annotation>

  <include schemaLocation="base.xsd" />

  <complexType name="programmingLanguageType" mixed="false">
    <simpleContent>
      <extension base="maml:devLanguagesType" />
    </simpleContent>
  </complexType>

  <element name="programmingLanguage" type="maml:programmingLanguageType">
    <annotation>
      <documentation>
        This element is used to hold a programming language.
      </documentation>
      <appinfo>
        <doc:localizable>false</doc:localizable>
        <doc:type>paragraph</doc:type>
      </appinfo>
    </annotation>
  </element>

  <simpleType name="operatingSystemsStringType">
    <restriction base="token">
      <enumeration value="Win95" />                    <!--Windows 95-->
      <enumeration value="Win98" />                    <!--Windows 98-->
      <enumeration value="Win98Se" />                  <!--Windows 98 Second Edition-->
      <enumeration value="WinMe" />                    <!--Windows Millennium Edition-->
      <enumeration value="WinNt4Server" />             <!--Windows NT Server 4.0-->
      <enumeration value="WinNt4Workstation" />        <!--Windows NT Workstation 4.0-->
      <enumeration value="Win2kProfessional" />        <!--Windows 2000 Professional-->
      <enumeration value="Win2kServer" />              <!--Windows 2000 Server-->
      <enumeration value="Win2kAdvanced" />            <!--Windows 2000 Advanced Server-->
      <enumeration value="Win2kDatacenter" />          <!--Windows 2000 Datacenter Server-->
      <enumeration value="Win2kServerApplianceKit" />  <!--Windows 2000 with Server Appliance Kit-->
      <enumeration value="WinXpHome" />                <!--Windows XP Home Edition-->
      <enumeration value="WinXpProfessional" />        <!--Windows XP Professional-->
      <enumeration value="WinXpMediaCenter" />         <!--Windows XP Media Center-->
      <enumeration value="WinXpTablet" />              <!--Windows XP Tablet PC-->
      <enumeration value="WinXpEmbedded" />            <!--Windows XP Embedded-->
      <enumeration value="Win2003Server" />            <!--Windows Server 2003-->
      <!--<enumeration value="WinCeDotNet"/> -->      <!--Windows CE .NET--> 
      <enumeration value="NETCF" />              	    <!--Windows CE .NET-->
    </restriction>
  </simpleType>

  <simpleType name="operatingSystemFamiliesStringType">
    <restriction base="token">
      <enumeration value="Win9xFamily" />              <!--Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition-->
      <enumeration value="WinNt4Family" />             <!--Windows NT Server 4.0, Windows NT Workstation 4.0-->
      <enumeration value="Win2kFamily" />              <!--Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, Windows 2000 Datacenter Server-->
      <enumeration value="WinXpFamily" />              <!--Windows XP Home Edition, Windows XP Professional, Windows XP Media Center, Windows XP Tablet PC-->
      <!--<enumeration value="WinCeFamily"/> -->             <!--Windows CE .NET (and previous versions)-->
    </restriction>
  </simpleType>

  <simpleType name="platformStringType">
    <union memberTypes="maml:operatingSystemsStringType maml:operatingSystemFamiliesStringType">
      <simpleType>
        <restriction base="token">
          <enumeration value="EcmaCli" />           <!--Common Language Infrastructure (CLI) Standard-->
        </restriction>
      </simpleType>
    </union>
  </simpleType>

  <complexType name="platformType" mixed="false">
    <simpleContent>
      <extension base="maml:platformStringType" />
    </simpleContent>
  </complexType>

  <element name="platform" type="maml:platformType">
    <annotation>
      <documentation>
        This element holds the identifier for a platform (such as an operating system version).
      </documentation>
      <appinfo>
        <doc:localizable>false</doc:localizable>
        <doc:type>paragraph</doc:type>
      </appinfo>
    </annotation>
  </element>

  <simpleType name="legacyPlatformStringType">
    <restriction base="token">
      <enumeration value="Win" />
      <enumeration value="Mac" />
    </restriction>
  </simpleType>

  <complexType name="legacyPlatformType" mixed="false">
    <simpleContent>
      <extension base="maml:legacyPlatformStringType" />
    </simpleContent>
  </complexType>

  <element name="legacyPlatform" type="maml:legacyPlatformType">
    <annotation>
      <documentation>
        This element holds the identifier for a platform used in conditional markup.
      </documentation>
      <appinfo>
        <doc:localizable>false</doc:localizable>
        <doc:type>paragraph</doc:type>
      </appinfo>
    </annotation>
  </element>

  <simpleType name="legacyMediumStringType">
    <restriction base="token">
      <enumeration value="CD" />
      <enumeration value="Online" />
      <enumeration value="Print" />
      <enumeration value="VSonly" />
      <enumeration value="SDKonly" />
    </restriction>
  </simpleType>

  <complexType name="legacyMediumType" mixed="false">
    <simpleContent>
      <extension base="maml:legacyMediumStringType" />
    </simpleContent>
  </complexType>

  <element name="legacyMedium" type="maml:legacyMediumType">
    <annotation>
      <documentation>
        This element holds the identifier for a medium used in conditional markup.
      </documentation>
      <appinfo>
        <doc:localizable>false</doc:localizable>
        <doc:type>paragraph</doc:type>
      </appinfo>
    </annotation>
  </element>

  <simpleType name="legacyUserDefinedStringType">
    <restriction base="token">
      <enumeration value="Ent" />
      <enumeration value="Pro" />
      <enumeration value="Std" />
      <enumeration value="Comment" />
      <enumeration value="Rad" />
      <enumeration value="Net" />
      <enumeration value="None" />
      <enumeration value="Jsharp" />
      <enumeration value="Vb" />
      <enumeration value="Cplus" />
      <enumeration value="Csharp" />
      <enumeration value="Office" />
      <enumeration value="VS" />
      <enumeration value="SqlServer" />
      <enumeration value="Js7" />
      <enumeration value="Js7net" />
      <enumeration value="Vblr7" />
      <enumeration value="Vblr7net" />
    </restriction>
  </simpleType>

  <complexType name="legacyUserDefinedType" mixed="false">
    <simpleContent>
      <extension base="maml:legacyUserDefinedStringType" />
    </simpleContent>
  </complexType>

  <element name="legacyUserDefined" type="maml:legacyUserDefinedType">
    <annotation>
      <documentation>
        This element holds the identifier for a user-defined condition used in conditional markup.
      </documentation>
      <appinfo>
        <doc:localizable>false</doc:localizable>
        <doc:type>paragraph</doc:type>
      </appinfo>
    </annotation>
  </element>

  <complexType name="platformsType" mixed="false">
    <sequence>
      <element ref="maml:platform" minOccurs="0" maxOccurs="unbounded" />
    </sequence>
  </complexType>

  <element name="platforms" type="maml:platformsType">
    <annotation>
      <documentation>
        This element is a collection of platform elements.
      </documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
        <doc:type>structure</doc:type>
      </appinfo>
    </annotation>
  </element>


</schema>